{include file="common/_meta"}

<title>比赛中</title>
<meta name="keywords" content="H-ui.admin v3.0,H-ui网站后台模版,后台模版下载,后台管理系统模版,HTML后台模版下载">
<meta name="description" content="H-ui.admin v3.0，是一款由国人开发的轻量级扁平化网站后台模板，完全免费开源的网站后台管理系统模版，适合中小型CMS后台系统。">
</head>
<body ng-app="app" ng-controller="controller">
<article class="cl pd-20">

    <!--
        本页面负责服务端比赛场景变更。

        比赛设定业务流程：开盆->七扣—>六扣->五扣->结算

        业务逻辑：
            比赛开始后，即到开盆阶段。用户可以对双方开始投注开盆。
            开盆不计算放扣接扣！
            接下来依次跳转到七扣，六扣，五扣，

            从七扣开始的每次状态变更，都需要计算上依次打赏总数，每上一次打赏总额多的一方，获得放扣机会，
            如开盆阶段，红方获得打赏1000点，蓝方获得打赏400点，第一次到七扣时，成为红方放扣蓝方接扣。
            假如七扣阶段，蓝方作为接扣方接满，到六扣时，蓝方将变成放扣方。
            如果本阶段没有人放扣，后台可以将比赛返回上一个阶段。如7扣阶段没有人放扣，可以返回到开盆。此时开盆延续之前分数？//todo

            //放接扣的积分转换
            接放扣按照地方100开始，个为单位。
            放扣方积分计算系统为1,接扣方积分计算系统为10/n,积分为系数*100，
            放扣不转换，直接投注，投入100分，即100分。
            接扣中，积分计算为N扣中，N*10分。

            接放扣的状态变更的特殊情况：
            假如在跳转到下一个计扣阶段时，接扣方获得的本扣打赏超过放扣方，此时接放扣身份反转。

            阶段回退：
            客户在描述阶段变更时，描述一个情况，即可从5扣再次回到六扣，这个业务需要补充。
            如果某一个阶段没有放扣，后台可以手动返回到上一阶段。（没有放扣，可以返回到开盆吗？）


        结算公式：
            服务费:投注分数*10%
            开盆：投注金额 * 190%   - 服务费  。Ex:投注1000分开盆，胜利收入1800分。
            七扣：投注金额 * 170%   - 服务费  。Ex:投注1000分七扣，胜利收入1630分。
            六扣：投注金额 * 160%   - 服务费  。Ex:投注1000分六扣，胜利收入1540分。
            五扣：投注金额 * 150%   - 服务费  。Ex:投注1000分五扣，胜利收入1450分。

         业务说明：
            状态变更后，需要通知全部客户端改变状态。


    -->
<div>
        <input type="hidden" name="status" value="1"/>

        <div class="row cl">
            <label class="label">当前状态:</label>
            <label class="">
                <span ng-if="info.status==0">等待开始</span>
                <span ng-if="info.status==10">开盆</span>
                <span ng-if="info.status==7">七扣</span>
                <span ng-if="info.status==6">六扣</span>
                <span ng-if="info.status==5">五扣</span>
                <span ng-if="info.status==-1">比赛结束</span>
            </label>
        </div>

        <table class="table table-border">
            <tr>
                <th></th>
                <th>红方</th>
                <th>蓝方</th>
                <!--<th>踢出</th>-->
            </tr>

            <tr>
                <td class="">开盆</td>
                <td>{{info.info.red_kaipen}}</td>
                <td>{{info.info.blue_kaipen}}</td>
                <!--<td>{{info.red_kaipen_kill}}</td>-->

            </tr>

            <tr>
                <td class="">七扣</td>
                <td>{{info.info.red_qikou}}</td>
                <td>{{info.info.blue_qikou}}</td>
                <!--<td>123</td>-->
            </tr>

            <tr>
                <td class="">六扣</td>
                <td>{{info.info.red_liukou}}</td>
                <td>{{info.info.blue_liukou}}</td>
                <!--<td>123</td>-->
            </tr>

            <tr>
                <td class="">五扣</td>
                <td>{{info.info.red_wukou}}</td>
                <td>{{info.info.blue_wukou}}</td>
                <!--<td>123</td>-->
            </tr>

            <tr>
                <td class="">积分总计</td>
                <td>{{info.red_reward}}</td>
                <td>{{info.blue_reward}}</td>
                <!--<td>123</td>-->
            </tr>

            <tr>
                <td class="">投注总计</td>
                <td>{{info.red_total}}</td>
                <td>{{info.blue_total}}</td>
                <!--<td>123</td>-->
            </tr>

            <tr>

            </tr>

        </table>

        <div class="row cl">
            <label class="label">状态切换:</label>

            <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
                <button class="btn btn-success radius col-sm-3" ng-click="qie(10)">开盆</button>
                <button class="btn btn-success radius col-xs-4" ng-click="qie(7)">七扣</button>
                <button class="btn btn-success radius col-xs-4" ng-click="qie(6)">六扣</button>
                <button class="btn btn-success radius col-xs-4" ng-click="qie(5)">五扣</button>
            </div>

        </div>

        <div class="row cl">
            <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
                <div class="radio-box">
                    <input type="radio" id="winner1" name="winner" value="1" ng-model="winner"/>
                    <label for="winner1">红方胜</label>

                    <input type="radio" id="winner2" name="winner" value="2" ng-model="winner"/>
                    <label for="winner2">蓝方胜</label>

                </div>

                <button class="btn btn-warning radius col-xs-4" ng-click="qie(-1)">结算本剧</button>
                <!--<input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;结算本局&nbsp;&nbsp;">-->
            </div>
        </div>

    </div>
</article>

{include file="common/_footer"}

<!--请在下方写此页面业务相关的脚本-->

<script type="text/javascript" src="/lib/angular/angular.min.js"></script>
<script type="text/javascript" src="/lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="/lib/jquery.validation/1.14.0/jquery.validate.js"></script>
<script type="text/javascript" src="/lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="/lib/jquery.validation/1.14.0/messages_zh.js"></script>
<script type="text/javascript">
    var ws,myscope;
    var app = angular.module('app',[]);
    var id = {$game_id};//游戏ID

    app.controller('controller',function ($scope,$http) {
        $scope.info = {
            status:0,
            red_reward:0,
            red_total:0,
            blue_reward:0,
            blue_total:0
        };
        //播放 admin暂时不需要
        $scope.readyplay = function (t, b) {

        }

        //切换比赛阶段  1=开盆 2闷盆 7=七扣 6=六口 5=五口
        $scope.qie = function (status) {
            var data = {id:id,type:"game_change",status:status,data:null};
            var str ;
            switch (status){
                case 10:
                    str = "确认切换到 开盆？"
                    break;
                case 7:
                    str = "确认切换到 七扣？"
                    break;
                case 6:
                    str = "确认切换到 六扣？"
                    break;
                case 5:
                    str = "确认切换到 五扣？"
                    break;
                case 4:
                    str = "确认切换到 四扣？"
                    break;
                case -1:
                    if (!$scope.winner){
                        window.confirm("请选择胜方!");
                        return;
                    }
                    str = "确认结算本本局？"
                    data.data = {winner:$scope.winner};
                    break;
                default:
                    console.log("系统错误...");
                    break;
            }
            if (window.confirm(str)){
                ws.send(JSON.stringify(data));
            }

        }

        //扣   接放扣在服务端处理？
        $scope.kou = function (score,kid,direction) {
            kdata = {
                score:score,
                kid:kid,
                direction:direction
            };
            ws.send(JSON.stringify(kdata));
        }
        //绑定UID
        $scope.binduid = function (clientid) {
            $http.get('{:url("auth/bind","",false)}/clientid/'+clientid).then(function () {
                ws.send(JSON.stringify({type:"report",id:id}));
            });
            console.log("clientid:"+clientid);
        }

    });


    function connectWs() {
        ws = new WebSocket("ws:127.0.0.1:8282");

        ws.onopen = function (event) {
            status = true;
            console.log(event);
            myscope = angular.element(document.querySelector("[ng-controller=controller]")).scope();
            setTimeout(function () {

                topsrc = "http://pili-live-hls.stormrage.cn/stormrage/test199.m3u8";
                bottomsrc = "http://pili-live-hls.stormrage.cn/stormrage/test199t.m3u8";
                myscope.readyplay(topsrc,bottomsrc);
            },2000);


        }
        ws.onmessage = function (p1) {

            var data = JSON.parse(p1.data);
            console.log(data);
            var type = data.type || '';
            switch (type){
                //初始化绑定UID CLIENTID
                case "init":
                    myscope.binduid(data.data);
                    break;
                //状态回调
                case "status":
                    //这里要用HUI弹窗
                    if (data.data){
                        console.log("操作成功");
                    }else{
                        console.log("操作失败");
                    }
                    break;
                //UI更新
                case "game_update":
                    myscope.info = data.data;
                    myscope.$apply();
                    break;
                case "result":
                    console.log("结算完成，关闭页面 刷新上一个列表");
                    break;
            }

            //刷新info
//            myscope.info = {red_reward:5000,red_total:5000,blue_reward:5000,blue_total:3500};
//            myscope.$apply();

        }
        ws.onerror = function (event) {
            if (event.type == "error"){
                alert("服务器连接失败，请稍后重试");
            }
            console.log(event);
        }
        ws.onclose = function (p1) {
            console.log(p1);
        }
    }

    connectWs();
</script>
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>